renderer: Make gsk_renderer_is_realized() public
authorBenjamin Otte <otte@redhat.com>
Sat, 9 Mar 2019 12:59:03 +0000 (13:59 +0100)
committerBenjamin Otte <otte@redhat.com>
Tue, 19 Mar 2019 07:47:54 +0000 (08:47 +0100)
... and add a property for it.

docs/reference/gsk/gsk4-sections.txt
gsk/gskrenderer.c
gsk/gskrenderer.h
gsk/gskrendererprivate.h

index 63b525b6f512856e41c10b35e1f720d90ae2b9f3..0e4e5468b46dba49af155b337fc4d8199eb3753a 100644 (file)
@@ -4,6 +4,7 @@ gsk_renderer_new_for_surface
 gsk_renderer_get_surface
 gsk_renderer_realize
 gsk_renderer_unrealize
+gsk_renderer_is_realized
 gsk_renderer_render
 gsk_renderer_render_texture
 <SUBSECTION Standard>
index b34cad3d2442fcca7e745dd35950fa2301c858be..95eaa0a1e5d3a3b31e076c7a56c7a72844635c23 100644 (file)
@@ -79,7 +79,9 @@ typedef struct
 G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GskRenderer, gsk_renderer, G_TYPE_OBJECT)
 
 enum {
-  PROP_SURFACE = 1,
+  PROP_0,
+  PROP_REALIZED,
+  PROP_SURFACE,
 
   N_PROPS
 };
@@ -147,6 +149,10 @@ gsk_renderer_get_property (GObject    *gobject,
 
   switch (prop_id)
     {
+    case PROP_REALIZED:
+      g_value_set_boolean (value, priv->is_realized);
+      break;
+
     case PROP_SURFACE:
       g_value_set_object (value, priv->surface);
       break;
@@ -170,13 +176,19 @@ gsk_renderer_class_init (GskRendererClass *klass)
   gobject_class->get_property = gsk_renderer_get_property;
   gobject_class->dispose = gsk_renderer_dispose;
 
+  gsk_renderer_properties[PROP_REALIZED] =
+    g_param_spec_boolean ("realized",
+                          "Realized",
+                          "The renderer has been associated with a surface",
+                          FALSE,
+                          G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS);
+
   gsk_renderer_properties[PROP_SURFACE] =
     g_param_spec_object ("surface",
                          "Surface",
                          "The surface associated to the renderer",
                          GDK_TYPE_SURFACE,
-                         G_PARAM_READABLE |
-                         G_PARAM_STATIC_STRINGS);
+                         G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (gobject_class, N_PROPS, gsk_renderer_properties);
 }
index 6af9af1133b275e72b5c599a815ecc5454f4ce1c..6dc3ce1f3032d8ccda88fdbb5fb0385a83c254b0 100644 (file)
@@ -50,6 +50,8 @@ gboolean                gsk_renderer_realize                    (GskRenderer
                                                                  GError                 **error);
 GDK_AVAILABLE_IN_ALL
 void                    gsk_renderer_unrealize                  (GskRenderer             *renderer);
+GDK_AVAILABLE_IN_ALL
+gboolean                gsk_renderer_is_realized                (GskRenderer             *renderer);
 
 GDK_AVAILABLE_IN_ALL
 GdkTexture *            gsk_renderer_render_texture             (GskRenderer             *renderer,
index a99e84a63c9da285e8c67abf9c8131be34834b79..fcee1849f273857b3730d4630f275625f8ad2a31 100644 (file)
@@ -51,8 +51,6 @@ struct _GskRendererClass
                                                                  const cairo_region_t   *invalid);
 };
 
-gboolean                gsk_renderer_is_realized                (GskRenderer    *renderer);
-
 GskRenderNode *         gsk_renderer_get_root_node              (GskRenderer    *renderer);
 
 GskProfiler *           gsk_renderer_get_profiler               (GskRenderer    *renderer);